Execution of dynamically configured application service in access method-independent exchange

ABSTRACT

The present invention provides a virtual network, sitting “above” the physical connectivity and thereby providing the administrative controls necessary to link various communication devices via an Access-Method-Independent Exchange. In this sense, the Access-Method-Independent Exchange can be viewed as providing the logical connectivity required. In accordance with the present invention, connectivity is provided by a series of communication primitives designed to work with each of the specific communication devices in use. As new communication devices are developed, primitives can be added to the Access-Method-Independent Exchange to support these new devices without changing the application source code. A Thread Communication Service is provided, along with a Binding Service to link Communication Points. A Thread Directory Service is available, as well as a Broker Service and a Thread Communication Switching Service. Intraprocess, as well as Interprocess, services are available. Dynamic Configuration Management and a Configurable Application Program Service provide software which can be commoditized, as well as upgraded while in operation.

RELATED APPLICATION AND INCORPORATION BY REFERENCE

[0001] This is a continuation of U.S. patent application Ser. No. 08/363,905, filed Dec. 12, 1994, and scheduled to issue on Dec. 15, 1998 as U.S. Pat. No. 5,850,518, the entire disclosure thereof, including the specification, drawings, and abstract, being hereby incorporated by reference.

[0002] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the PTO patent file or records, but otherwise reserves all copyright rights whatsoever.

[0003] Having thus described the invention, what it is desired to claim and hereby protect by Letters Patent is: 

What is claimed is:
 1. In a network that includes at least one server and at least one client coupled to said network, a computer-readable memory associated with each of at least a subset of said at least one sere and said at least one client each said computer-readable memory being configured to direct an associated member of said subset to execute at least one stage of a plurality of stages that compose a workflow and to cooperate with other members of said subset so that all of said stages of said workflow are executed by said members, one of said computer-readable memories comprising: data representing manifestations of a set of actions to be completed through the execution of at least one of said plurality of stages, each of said stages being executable by a respective authorized actor associated with one of said members; state data indicating executed stages in said workflow; a registry containing at least one code fragment reference that points to an executable code fragment stored on said network, each of said executable code fragments being executable on any of said members; such that, when being executed on one of said members, an appropriate subset of said executable code fragments directs said one member to perform workflow tasks associated with an appropriate stage of said workflow based on actions of said actor, said state data and said data representing manifestations and then updates said manifestations and said state data to indicate execution of said appropriate stage; and a reference to or a representation of a set of workflow rules defining how said stages are to be executed.
 2. The memory of claim 1, wherein said executable code fragments are written in a platform-independent computer language, each of said members further comprising a browser that is configured to load and run said executable code fragments.
 3. The memory of claim 2, wherein programs written in said platform-independent computer language can be downloaded to, installed on and executed by a computer configured with said browser in a way that is substantially certain not to compromise integrity and security of said computer.
 4. The memory of claim 3, wherein said platform-independent computer language is Java.
 5. The memory of claim 2, wherein, based on said updated manifestations, said updated state data, said actions and said workflow rules, said subset of executable code fragments determines a subsequent stage of said workflow to be executed and an actor type authorized to execute said subsequent stage.
 6. The memory of claim 5, further comprising: an actor index comprising at least one network reference to respective actor directories, wherein an actor directory includes addresses of network nodes associated with authorized actors; such that, following said determination of said subsequent stage of said workflow to be executed and said actor type authorized to execute said subsequent stage, said executing subset directs said one member to access said referenced actor directories and select from said actor directories as an appropriate member for the execution of said subsequent stage a network node of an actor represented therein as having said actor type; said executing subset thereafter directing said one member to communicate to said appropriate member said rules, said code references, said updated manifestations, and said updated state data so that said memory of said appropriate member can be configured to direct said appropriate member to execute said subsequent stage.
 7. The memory of claim 2, further comprising: a route defining a sequence of said stages and associating with each stage in said sequence a network node identifier of one of said members associated with an actor authorized to execute that stage; wherein, following execution of one of said stages and based on said updated state data and said route, said subset of executable code fragments determines a subsequent stage to be executed and directs said one member to communicate to said actor authorized to execute said stage said route, said code references, said updated manifestations and said updated state data so that said memory of said appropriate member can be configured to direct said appropriate member to execute said subsequent stage.
 8. The memory of claim 2, wherein said data representing said manifestations comprise a set of forms to be completed through the execution of said plurality of stages that comprise said workflow; said executing subset of code fragments directing said member to display appropriate ones of said set of forms and enable actor interaction with said forms.
 9. The memory of claim 8, wherein said set of forms includes a master form providing a set of actor-selectable options common to all of said plurality of stages, said executing subset of code fragments directing said member to display said master form.
 10. The memory of claim 9, wherein said workflow tasks include one or more of displaying said forms, determining from said stage data a pending stage to be executed, guiding an actor through execution of said pending stage based on said workflow rules and updating said forms and said stage data to reflect completion of said pending stage.
 11. The memory of claim 10, wherein said form comprises a collection of fields, each of said fields containing field data and at least zero pointers to respective registry entries, each of which stores at least one code fragment reference.
 12. The memory of claim 11, wherein said code fragment reference comprises an address of an executable code fragment, said address being selected from a local address when said executable code fragment is stored within said memory or a remote address when said executable code fragment is stored on a network node other than said client.
 13. The memory of claim 12, wherein, when a user selects a field of a displayed form, said executing subset directs said member to execute said code fragments that are linked to said field via an associated entry in said registry, said code fragments being configured to perform field-oriented tasks including enabling user interaction with said field, instructing a user on how to complete said field based on pre-stored rules associated with said field and verifying legality of entries made by said user.
 14. The memory of claim 1, wherein said code fragments incorporate said set of workflow rules defining how said stages are to be executed.
 15. The memory of claim 1, further comprising a rules database incorporating said set of workflow rules defining how said stages are to be executed.
 16. A computer system for asynchronously executing steps of a sequential process on a network that includes at least one server and at least one client coupled to said network, said servers and said clients each including a processor and a memory and having a unique network ID, said computer system comprising: a requestor that is executable on a client's processor, said requestor being configured to control messages issued by said client on said network, said messages including a request message instructing a particular one of said servers to transmit to said client a workflow courier requested by a user of said client; a provider that is executable on a server's processor, said provider being configured to be responsive to said messages directed to said server, said provider being configured to respond to said request message by causing said server to transmit to said client said workflow courier; said workflow courier comprising: a set of forms to be completed through the execution of a plurality of stages that compose a workflow, each of said stages being executable by a respective actor; state data indicating executed stages in said workflow; and a registry containing at least one code fragment reference, each of which points to an executable code fragment; such that, upon receiving said workflow courier over said network, said client displays one of said forms and, based on user interaction with said form and other displayed forms, selectably loads and runs a set of referenced code fragments that are configured, when running, to perform one or more of a number of workflow tasks, including displaying said forms, determining from said state data a pending stage to be executed, guiding an actor through execution of said pending stage based on workflow rules and updating said forms and said state data in said workflow courier to reflect completion of said pending stage.
 17. The computer system of claim 16, wherein said set of forms includes a master form providing a common set of selectable options and wherein said master form is displayed by said client upon receiving said workflow courier.
 18. The computer system of claim 17, wherein said executable code fragments are written in a platform-independent computer language, said clients further comprising a browser that is configured to load and run said executable code fragments.
 19. The computer system of claim 18 wherein said platform-independent computer language is Java.
 20. The computer system of claim 19, wherein said provider is also configured to respond to broad user workflow requests issued from said requestor by providing said requestor with a plurality of workflow options that satisfy search terms included in said broad user workflow request, each of said workflow options being linked to a specific workflow so that, when said user selects one of said plurality of workflow options, said requestor is configured to issue on said network a workflow request for said linked workflow.
 21. A computer system for executing steps of a sequential process on a network that includes at least one server and at least one client coupled to said network, said servers and said clients each including a processor and a memory and having a unique network ID, said computer system comprising: a requester that is executable on a client's processor, said requestor being configured to control messages issued by said client on said network, said messages including a request message instructing a particular one of said servers to transmit to an appropriate network node a workflow courier corresponding to a workflow requested by a user of said client; a provider that is executable on a server's processor, said provider being configured to be responsive to said messages directed to said server, said provider being configured to respond to said request message by causing said server to transmit to said appropriate network node said workflow courier; said workflow courier comprising: a set of data representing manifestations of a set of actions to be completed through the execution of at least one of said plurality of stages, each of said stages being executable by a respective authorized actor associated with a network node; state data indicating executed stages in said workflow; and a registry containing at least one code fragment reference, each of which points to an executable code fragment, said executable code fragments being written in a platform-independent computer language so that said code fragments can be executed on any of said network nodes, an appropriate subset of said executable code fragments directing said appropriate node in receipt of said workflow courier to perform workflow tasks associated with an appropriate stage of said workflow based in part on actions of said actor, said state data and said set of data representing manifestations, said workflow tasks including updating said set of data representing manifestations and said state data where appropriate.
 22. The computer system of claim 21, wherein said clients further comprise a browser that is configured to load and run said executable code fragments.
 23. The computer system of claim 22, wherein programs written in said platform-independent computer language can be downloaded to, installed on and executed by a computer configured with said browser in a way that is substantially certain not to compromise integrity and security of said computer.
 24. The computer system of claim 23 wherein said platform-independent computer language is Java.
 25. The computer system of claim 24, wherein said provider is also configured to respond to broad user workflow request issued from said requester by providing said requestor with a plurality of workflow options that satisfy search terms included in said broad user workflow request, each of said workflow options being linked to a specific workflow so that, when said user selects one of said plurality of workflow options, said requestor is configured to issue on said network a workflow request for said linked workflow.
 26. The computer system of claim 22, wherein, based on said updated manifestations, said updated state data, said actions and said workflow rules, said subset of executable code fragments determines a subsequent stage of said workflow to be executed and an actor type authorized to execute said subsequent stage.
 27. The computer system of claim 26, further comprising: an actor index comprising at least one network reference to respective actor directories, wherein an actor directory includes addresses of network nodes associated with authorized actors; such that, following said determination of said subsequent stage of said workflow to be executed and said actor type authorized to execute said subsequent stage, said executing subset directs said one member to access said referenced actor directories and select from said actor directories as an appropriate member for the execution of said subsequent stage a network node of an actor represented therein as having said actor type; said executing subset thereafter directing said one member to communicate to said appropriate member said rules, said code references, said updated manifestations, and said updated state data so that said memory of said appropriate member can be configured to direct said appropriate member to execute said subsequent stage.
 28. The computer system of claim 21, wherein said code fragments incorporate a set of workflow rules defining how said stages are to be executed.
 29. The computer system of claim 21, wherein said workflow courier further comprises a rules database incorporating a set of workflow rules defining how said stages are to be executed.
 30. A computer-implemented method for performing workflow on a network comprising the steps of: (1) issuing a workflow request on said network; (2) in response to said workflow request, a server building a workflow courier, said workflow courier including: (a) a set of forms to be completed through the execution of a plurality of stages that compose said workflow, each of said stages being executable by a respective actor; (b) state data indicating executed stages in said workflow; and (c) a registry containing at least one code fragment reference, each of which points to an executable code fragment; (3) said server transmitting said workflow courier to a network node associated with an actor authorized to perform an appropriate stage of said workflow; (4) upon receiving said workflow courier over said network, said network node executing said workflow courier so that said actor performs said appropriate stage under control of said executing workflow courier, said workflow courier ensuring that said actor performs said stage according to rules associated with said workflow and said stage; (5) upon completion of said appropriate stage, said workflow courier updating itself to reflect status of said workflow upon completion of said appropriate stage; (6) after updating itself, said workflow courier determining whether said workflow is complete; and (7) after determining that said workflow is not complete, said workflow courier determining another appropriate stage of said workflow to be completed and transmitting said workflow courier to a next network node associated with an actor authorized to perform said another appropriate stage.
 31. The computer-implemented method of claim 30, wherein said set of forms includes a master form providing a common set of selectable options and wherein said master form is displayed by said client upon receiving said workflow courier.
 32. The computer-implemented method of claim 31, wherein said executable code fragments are written in a platform-independent computer language, said clients further comprising a browser that is configured to load and run said executable code fragments.
 33. The computer-implemented method of claim 32, wherein said platform-independent computer language is Java.
 34. The computer-implemented method of claim 30, further comprising the step of: upon determining that said workflow is complete, said workflow courier causing said network node to transmit final notification of completion of said workflow to said server.
 35. The computer-implemented method of claim 30, wherein said step of executing said workflow courier comprises: displaying said forms; based on user interaction with said forms, selectably loading and running a set of referenced code fragments; said referenced code fragments, when running, performing one or more of a number of workflow tasks comprising: displaying said forms, determining from said state data a pending stage to be executed; guiding an actor through execution of said pending stage based on workflow rules; updating said forms and said state data in said workflow courier to reflect completion of said pending stage; and forwarding updated workflow courier to an appropriate network node for execution of a subsequent stage by another actor.
 36. The computer-implemented method of claim 30, wherein said step of executing said workflow courier comprises: (1) displaying zero or more forms that are appropriate for said stage being performed; (2) enabling user interaction with fields of said forms, said user interaction including selecting a field of said forms to complete; (3) fetching and executing zero or more linked programs linked to said field selected by said user; (4) said linked programs determining whether there is local access on said network node to all programs and forms needed by said linked programs; (5) when said needed programs and forms are not locally available: fetching said needed programs and forms from said network; and adding said fetched programs and forms to said workflow courier; (6) when said needed programs and forms are locally available: said linked programs displaying said needed forms and executing said needed programs where appropriate; and enabling user interaction with fields of said needed forms according to said rules; (7) determining whether, as a result of said user interaction and in light of said rules, said stage has been competed; and (8) upon determining that said stage has not been completed, repeating steps of said method from step (4) through step (8).
 37. A computer-implemented method for performing workflow on a network comprising the steps of: (1) issuing a workflow request on said network; (2) in response to said workflow request, a server building a workflow courier, said workflow courier comprising: (a) a set of data representing manifestations of a set of actions to be completed through the execution of at least one of a plurality of stages that compose said workflow, each of said stages being executable by a respective actor; (b) state data indicating executed stages in said workflow; and (d) a registry containing at least one code fragment reference, each of which points to an executable code fragment, each of said executable code fragments being executable on any of said nodes without compromising integrity and security of said any node; (3) said server transmitting said workflow courier to a selected network node associated with an actor authorized to perform, in accordance with said workflow courier, an appropriate stage of said workflow.
 38. The computer-implemented method of claim 37, further comprising the steps of: (1) upon receiving said workflow courier over said network, said selected network node executing said workflow courier so that said actor performs said appropriate stage under control of said executing workflow courier, said workflow courier ensuring that said actor performs said stage according to said set of data representing manifestations, said state data and workflow rules that define how said stages are to be executed; and (2) upon completion of said appropriate stage, said workflow courier updating itself to reflect status of said workflow upon completion of said appropriate stage.
 39. The computer-implemented method of claim 37, wherein said step of executing said workflow courier comprises: displaying at least a subset of said set of data representing manifestations; based on user interaction with said displayed subset, selectably loading and running a set of referenced code fragments; said referenced code fragments, when running, performing one or more of a number of workflow tasks comprising: displaying said set of data representing manifestations of a set of actions, determining from said state data a pending stage to be executed; guiding an actor through execution of said pending stage based on workflow rules; updating said set of data representing manifestations of a set of actions and said state data in said workflow courier to reflect completion of said pending stage; and forwarding updated workflow courier to an appropriate network node for execution of a subsequent stage by another actor.
 40. The computer-implemented method of claim 37, wherein said step of executing said workflow courier comprises: (1) displaying at least a subset of said set of data representing manifestations that are appropriate for said stage being performed; (2) enabling user interaction with fields of said displayed subset, said user interaction including selecting a field of said displayed subset to complete; (3) fetching and executing zero or more linked programs linked to said field selected by said user; (4) said linked programs determining whether there is local access on said network node to all programs and sets of data representing manifestations of a set of workflow actions needed by said linked programs; (5) when said needed programs and sets of data representing manifestations are not locally available: fetching said needed programs and said sets of data representing manifestations from said network; and adding said fetched programs and said sets of data representing manifestations to said workflow courier; (6) when said needed programs and said sets of data representing manifestations are locally available: said linked programs displaying said needed sets of data representing manifestations and executing said needed programs where appropriate; and enabling user interaction with fields of said needed sets according to said rules; (7) determining whether, as a result of said user interaction and in light of said rules, said stage has been completed; and (8) upon determining that said stage has not been completed, repeating steps of said method from step (4) through step (8).
 41. The computer-implemented method of claim 37, wherein said code fragments incorporate said workflow rules.
 42. The computer-implemented method of claim 37, wherein said workflow courier further comprises a rules database incorporating said workflow rules. 